/*
 *                          许可协议    
 *    
 *  COPYRIGHT ©2009 The Siox software project Lab.
 * 
 * 版权声明:                               
 *  1.任何"派生软件"都必须包含此许可协议,"派生软件的开发者"必   
 *  须完全保留被继承"软件"的许可协议和"版权信息".          
 *  2."派生软件开发者"在别人使用他所"派生"的"软件"时,自动成为"开
 *  发者".                               
 *  3."使用者"所生成的二进制代码文件须包含"原始开发者"的版权信息. 
 *  4.如该软件并未得到"开发者"的开源，那么"使用者"对本程序仅有使  
 *  用权，并不得进行反向工程.                      
 *  5.本协议保留"原始开发者"的版权信息在许可协议文本之内.
 *  6.本文档作为源代码/程序的基本协议,如有变化作为本协议扩充 
 *                                     
 * 免责声明:                               
 *  1.使用本"软件"都意味"使用者"是自愿使用本"软件",接受此许可协 
 *  议的所有条款.如果"使用者"不同意此许可协议就不能使用本"软件".  
 *  2.本"软件"虽然在开发者的开发环境下经过严格测试,但不能排除    
 *  "软件"中仍然存在错误.由于使用本"软件"所造成的任何损失,"开发  
 *  者"不负任何责任!                          
 *  3.本"软件"在被"使用"过程中,由"使用者"发现的任何错误必须再反 
 *  馈给"开发者"并经过"开发者"同意后,才可对其他人公开.任何未经过  
 *  "开发者"同意而被使用者擅自公开的本"软件"的错误,"开发者"有权  
 *  要求其对"开发者"名誉损失负法律责任. 
 * 
 *  个人主页:http://hi.baidu.com/lindily
 *  电子信箱:lindily@126.com               
 */
package cn.siox.util;

import java.text.DateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * @类名 CurrentDateTime
 * @作者 Lindily
 * @日期 2009-7-16 0:43:01
 */
public class CurrentDateTime {

    private Date now = new Date();
    private Calendar cal = Calendar.getInstance();
    private DateFormat d1 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL); //显示日期，周，时间（精确到秒）
    private String str1 = d1.format(now);
    private DateFormat d2 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); //显示日期。时间（精确到秒）
    private String str2 = d2.format(now);
    private DateFormat d3 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); //显示日期，时间（精确到分）
    private String str3 = d3.format(now);
    private DateFormat d4 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); //显示日期，时间（精确到分）
    private String str4 = d4.format(now);//与SHORT风格相比，这种方式最好用

    private int year = cal.get(Calendar.YEAR);//获取年份
    private int month = cal.get(Calendar.MONTH);//获取月份
    private int day = cal.get(Calendar.DATE);//获取日
    private int hour = cal.get(Calendar.HOUR);//小时
    private int minute = cal.get(Calendar.MINUTE);//分    
    private int second = cal.get(Calendar.SECOND);//秒
    private int milliSecond=cal.get(Calendar.MILLISECOND);//毫秒
    private int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);//一年中的第几周
    private int dayOfYear = cal.get(Calendar.DAY_OF_YEAR);//一年中的第几天
    private int zone = cal.get(Calendar.ZONE_OFFSET);//时区，需要进一步计算 60*60*1000


    public int getMonth() {
//        System.out.println("month:"+ (month+1));
        return month+1;
    }

    public int getYear() {
//        System.out.println("year:"+year);
        return year;
    }
    public int getDay() {
//        System.out.println("day:"+day);
        return day;
    }

    public int getDayOfYear() {
//        System.out.println("dayOfYear:"+dayOfYear);
        return dayOfYear;
    }

    public int getHour() {
//        System.out.println("hour:"+hour);
        return hour;
    }

    public int getMinute() {
//        System.out.println("minute:"+minute);
        return minute;
    }

    public int getSecond() {
//        System.out.println("second:"+second);
        return second;
    }

    public int getDayOfWeek() {
//        System.out.println("dayOfWeek:"+dayOfWeek);
        return dayOfWeek;
    }

    public int getZone() {
//        System.out.println("zone:"+(zone/(60*60*1000)));
        return zone/(60*60*1000);
    }

    public int getMilliSecond(){
//        System.out.println("milliSecond:"+milliSecond);
        return milliSecond;
    }

    public String getFullDate() {
//        System.out.println("用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为：" + str1);
        return str1;
    }

    public String getLongDate() {
//        System.out.println("用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为：" + str2);
        return str2;
    }

    public String getShortDate() {
//        System.out.println("用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后为：" + str3);
        return str3;
    }

    public String getMediumDate() {
//        System.out.println("用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间后为：" + str4);
        return str4;
    }
//    public static void main(String[] args){
//        CurrentDateTime cdt=new CurrentDateTime();
//        cdt.getFullDate();
//        cdt.getLongDate();
//        cdt.getShortDate();
//        cdt.getMediumDate();
//
//
//        cdt.getYear();
//        cdt.getMonth();
//        cdt.getDay();
//        cdt.getHour();
//        cdt.getMinute();
//        cdt.getSecond();
//        cdt.getMilliSecond();
//        cdt.getZone();
//        cdt.getDayOfWeek();
//        cdt.getDayOfYear();
//
//    }
}
//用DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL)格式化时间后为
//：2008年6月16日 星期一 下午08时54分53秒 CST
//用DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG)格式化时间后为
//：2008年6月16日 下午08时54分53秒
//用DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT)格式化时间后
//为：08-6-16 下午8:54
//用DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM)格式化时间
//后为：2008-6-16 20:54:53

